/*
 * Created on 26-nov-2004
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package com.juanfrivaldes.cio2005.persistence.sqlmapdao;


import java.util.List;

import org.springframework.dao.DataAccessException;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;

import com.juanfrivaldes.cio2005.dao.UsuarioDao;
import com.juanfrivaldes.cio2005.domain.Usuario;

/**
 * @author ju@nfri
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class UsuarioSqlMapDao extends SqlMapClientDaoSupport implements UsuarioDao{

	private SecuenciaSqlMapDao secuenciaDao;
	
	/* (non-Javadoc)
	 * @see com.juanfrivaldes.cio2005.dao.UsuarioDao#addUsuario(com.juanfrivaldes.cio2005.domain.Usuario)
	 */
	public void addUsuario(Usuario user) throws DataAccessException {
		getSqlMapClientTemplate().update("insertUser", user);

	}
	/* (non-Javadoc)
	 * @see com.juanfrivaldes.cio2005.dao.UsuarioDao#getUsuario(java.lang.String, java.lang.String)
	 */
	public Usuario getUsuario(String user, String password)
			throws DataAccessException {

		Usuario usuario = new Usuario();
	    usuario.setEmail(user);
	    usuario.setPassword(password);
	    Usuario response= (Usuario) getSqlMapClientTemplate().queryForObject("getUsuario", usuario);
	    
	    return response;
	}
	/* (non-Javadoc)
	 * @see com.juanfrivaldes.cio2005.dao.UsuarioDao#updateUsuario(com.juanfrivaldes.cio2005.domain.Usuario)
	 */
	public void updateUsuario(Usuario user) throws DataAccessException {
		getSqlMapClientTemplate().update("updateUser", user);

	}
	/* (non-Javadoc)
	 * @see com.juanfrivaldes.cio2005.dao.UsuarioDao#getUsuario(java.lang.String)
	 */
	public Usuario getUsuario(String email) throws DataAccessException {
		
	    Usuario response= (Usuario) getSqlMapClientTemplate().queryForObject("getUsuarioByEmail", email);
	    
	    return response;
	}
	/* (non-Javadoc)
	 * @see com.juanfrivaldes.cio2005.dao.UsuarioDao#getUsuarios()
	 */
	public List getUsuarios() throws DataAccessException {
		// TODO Auto-generated method stub
		return getSqlMapClientTemplate().queryForList(
				"getUsuarioList", null);
	}
	public void inscribeUsuario(String userMail) throws DataAccessException {
		InscritoLine line=new InscritoLine();
		line.setEmail(userMail);
		line.setId(secuenciaDao.getNextId("inscrito"));
		getSqlMapClientTemplate().insert("inscribeUsuario",line);
		
	}
	public List getInscritos() throws DataAccessException {
		return getSqlMapClientTemplate().queryForList("getInscritosList",null);
	}
	public List getPagados() throws DataAccessException {
		return getSqlMapClientTemplate().queryForList("getPagados",null);
	}
	
	public void setPagado(String user) throws DataAccessException {
		getSqlMapClientTemplate().update("setPagado",user);
	}
	public SecuenciaSqlMapDao getSecuenciaDao() {
		return secuenciaDao;
	}
	
	public void setSecuenciaDao(SecuenciaSqlMapDao secuenciaDao) {
		this.secuenciaDao = secuenciaDao;
	}
	
}
